//class Solution {
//public:
//    int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {
//        int m = nums1.size();
//        int n = nums2.size();
//        vector<vector<int>>dp(m + 1, vector<int>(n + 1, 0));
//        for (int i = 1; i <= m; i++)
//        {
//            for (int j = 1; j <= n; j++)
//            {
//                if (nums1[i - 1] == nums2[j - 1])
//                {
//                    dp[i][j] = dp[i - 1][j - 1] + 1;
//                }
//                else
//                {
//                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
//                }
//
//
//
//
//            }
//        }
//        return dp[m][n];
//
//
//
//
//    }
//};
//class Solution {
//public:
//    int findLength(vector<int>& nums1, vector<int>& nums2) {
//        int m = nums1.size();
//        int n = nums2.size();
//        vector<vector<int>>dp(m + 1, vector<int>(n + 1, 0));
//        for (int i = 1; i <= m; i++)
//        {
//            for (int j = 1; j <= n; j++)
//            {
//                if (nums1[i - 1] == nums2[j - 1])
//                {
//                    dp[i][j] = dp[i - 1][j - 1] + 1;
//                }
//                else
//                {
//
//                }
//
//
//
//
//
//            }
//
//        }
//        int ret = 0;
//        for (int i = 0; i <= m; i++)
//        {
//            for (int j = 0; j <= n; j++)
//            {
//                if (ret < dp[i][j])
//                    ret = dp[i][j];
//
//
//
//            }
//
//
//        }
//
//        return ret;
//
//
//
//
//
//
//
//
//
//    }
//};
//#include <iostream>
//#include<string>
//using namespace std;
//
//int main() {
//	string str;
//	getline(cin, str);
//	string result;
//	if (str[0] <= 'z' && str[0] >= 'a')
//		str[0]-= 32;
//	result += str[0];
//	char* ptr = &str[0];
//	while (*ptr != '\0')
//	{ 
//		while ( *ptr != '\0'&& *ptr != ' ')
//		{
//			ptr++;
//		}
//		while (*ptr != '\0'&& * ptr == ' ')
//		{
//			ptr++;
//
//		}
//		if (*ptr <= 'z' && *ptr >= 'a')
//			*ptr-=32;
//		result += *ptr;
//	}
//	cout << result;
//
//}
#include <climits>
#include <iostream>
using namespace std;
const int N = 1e7;

int a[N];
int main() {
    int n;
    int ret = INT_MAX;
    int x;
    cin >> n >> x;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];

    }
    int left = 1;
    int right = 1;
    int memleft;
    int memright;
    int sum = a[left];
    while (right < n)
    {

        if (sum < x)
        {
            right++;
            sum += a[right];



        }
        else if (sum > x)
        {
            sum -= a[left];
            left++;
        }
        else {
            if (right - left + 1 < ret)
            {
                ret = right - left + 1;
                memleft = left;
                memright = right;


            }
            sum -= a[left];
            left++;




        }








    }
    cout << memleft << " " << memright << endl;







}